############### 权限管理 ###################
#1- chown 改变文件属主（管理员才有权限使用）
    chown chu file.txt  #改变文件的属主
    chown chu:chu file.txt  #修改属主属组
    chown :chu file.txt    #只改变文件的属组

    chown -R  chu dir/  #递归修改 修改目录以及内部的文件的属主
    chown -R chu:chu dir/  #修改目录的属主属组

    ##特别小用法  将文件的属主和属组都修改成reference指向的文件的属主属组
    chown --reference=a.sh b.sh  #b.sh的属主和属组会和a.sh一致

#2- chgrp 改变文件的属组（基本同上）

#3- chmod修改文件权限
    chmod 777 文件
    chmod -R dir1/

    chmod u=rwx a.txt
    chmod u+x,o+w b.txt 
    chmod go= a.txt  #使得a.txt的属组和其他用户的权限为空（无权限）

#4- umask遮罩码
#所谓遮罩码就是在默认权限基础上 创建文件和创建目录的时候起到权限遮盖而达到控制文件和目录的初始权限

#我们认为一个对于一个目录来说 默认的话属主、属组可以是rwx都可以有(目录需要x执行权限进行cd ls) 
#那就应该是777，而如果umask是0022那么如下图
777     rwx rwx rwx
         0   2   2
        rwx r-x r-x

#那么对于文件来说  默认的话 X执行权限其实我们不应该赋予  至少一个文件在初始化的时候最好不要执行
#因为有x执行权限的话比较危险 万一执行 万一里面有sh命令执行 会有影响 那么应该默认是666
666     rw- rw- rw-
         0   2   2
        rwx r-- r--

#5- FACL（Filesystem Access Control List）文件系统访问列表 
#有这么一种情况，tom用户创建了一个文件 希望和jerry一起修改，但是jerry不是属主，也不是基本组的用户，只能算是other用户。
#为了jerry可以操作，我们可以chmod o+r 这样，但是其他的dog pig等用户都可以修改了，就没有安全性了

#这个时候我们希望这个文件可以单独对jerry开启读写权限

setfacl -m #设置额外用户权限
setfacl -x #取消额外用户权限
getfacl    #获取文件的facl权限 

setfacl -m u:jerry:rw-  a.txt 
setfacl -m g:mygroup:rwx a.sh
setfacl -x u:jerry a.txt

###########################################
#6- w 查看那些用户通过什么途径登陆信息

#7- who 同w 但是没有w那么强大

#8- last 显示的是/var/log/wtmp文件内容  显示用户登陆历史和系统重启历史
    last -10  #显示最近10次的历史

#9- lastb  显示的是/var/log/btmp文件内容，显示用户错误的登陆尝试信息
    lastb -10

#10- lastlog  显示每一个用户最近一次成功登陆信息
    lastlog -u chu  #查看特定用户的登陆信息

#11- basename 取文件基名
    譬如  basename /etc/a/b   输出为 b
    basename $0  #脚本中的话就是取脚本命令本身的名字

#12- mail
    mail -s "主题" root

#13- 生成随机数
    echo $RANDOM  #随机数取1-32768之间的任意值
    #随机数是在/dev/路径下有两个随机数生成器
    先说下随机数的熵池：把敲击键盘间断时间等 硬件产生的真正的随机数放到熵池里面
    /dev/random  #从熵池中取随机数，但是如果熵池没有了  会阻塞进程
    /dev/urandom #从熵池中取随机数  但是如果熵池空了 会软件生成随机数 所以不会阻塞进程  但是不如random安全







    